A microcontroller is a semiconductor integrated circuit which is incorporated in equipment such as home electric appliances, AV equipment, cellular phones, automobiles and industrial machines and controls the equipment by performing processes in accordance with a program stored in a memory.
Since the failure of a control unit is likely to result in an accident in an automobile, a component including a microcontroller is required to have high reliability, and it is designed to implement a safety function when a failure has occurred so that an automobile does not enter a dangerous situation by detecting the failure. The microcontroller needs not only to detect the failure by checking a sensor and an actuator but also to detect a failure of the microcontroller itself.
There are various methods for the failure detection of the microcontroller. For example, a technique in which duplexed CPUs (Central Processing Unit) as data processing units are made to perform the same process and values of the buses thereof are constantly compared has been frequently employed. “Fault Tolerance Achieved in VLSI” IEEE MICRO, December, 1984 (patent document 1) has disclosed a method in which a master CPU and a comparison CPU simultaneously perform the same process and the respective results are compared in a comparison circuit. Japanese Patent Application Laid-Open Publication No. 10-11309 (patent document 2) has disclosed a technique in which a comparison CPU performs a process in a delayed manner with respect to a master CPU by 0.5+n (n is an integer of 0 or larger) cycle and a result obtained by delaying a result of the master CPU by 0.5+n cycle and a result of the comparison CPU are compared in a comparator.